package com.rd.student.ruanjian.class1.duhang.Week04.New;

public class Foodie extends Thread{
    @Override
    public void run() {
        //1.循环
        //2.同步代码块
        //3.判断共享数据是否到了末尾（到了末尾）
        //4.共享数据是否到了末尾（没到末尾，执行核心逻辑）


        while (true){
            synchronized (Desk.lock){
                if (Desk.count ==0){
                    break;
                }else {
                    //先判断是否有东西，没有，等待，有执行，执行后唤醒生产者继续生产，将总数减一，修改桌子（载体）状态
                    if (Desk.foodFlag ==0){
                        //没有就等待，用锁对象调用方法
                        try {
                            Desk.lock.wait();//让当前线程与锁绑定
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }// Desk.lock.notifyAll();//唤醒这把锁绑定的线程
                    }
                    else {
                        Desk.count--;//总数减一
                        System.out.println("在执行，还能执行" + Desk.count+ "次");
                        Desk.lock.notifyAll();//唤醒这把锁绑定的线程
                        Desk.foodFlag = 0;
                    }
                }
            }
        }
    }
}
